package com.cmic.rcs.emoji.util;

import org.apache.commons.codec.binary.Hex;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.stereotype.Component;

/**
 * 加密工具类
 */
@Component
public class EncryptionUtils {
    
    /**
     * 加密手机号
     * 使用SHA-256算法对手机号进行加密
     * @param mobile 手机号
     * @return 加密后的字符串
     */
    public static String encryptMobile(String mobile) {
        if (mobile == null || mobile.trim().isEmpty()) {
            return mobile;
        }
        // 使用SHA-256算法加密
        return Hex.encodeHexString(DigestUtils.sha256(mobile));
    }
    
    /**
     * 检查手机号是否已加密
     * 通过检查字符串长度和格式来判断
     * @param encryptedMobile 可能已加密的手机号
     * @return 是否已加密
     */
    public static boolean isMobileEncrypted(String encryptedMobile) {
        // SHA-256加密后的字符串长度是64位，并且只包含十六进制字符
        return encryptedMobile != null && encryptedMobile.length() == 64 && encryptedMobile.matches("^[0-9a-fA-F]+");
    }
}